package com.mine.modules.vm.domain.dto;

import java.math.BigDecimal;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;

import java.time.LocalDate;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mine.common.annotation.vm.AssetsInfoAnnotation;
import com.mine.common.annotation.vm.LabelAnnotation;
import com.mine.common.annotation.vm.QueryAnnotation;
import com.mine.modules.vm.common.constant.BizConstant;
import com.mine.modules.vm.common.converter.AmountConverter;
import com.mine.modules.vm.common.converter.CostConverter;
import com.mine.modules.vm.common.converter.DateStringConverter;
import com.mine.modules.vm.common.converter.IdStringConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 *
 * </p>
 *
 * @author xujf
 * @since 2024-09-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "固定资产对象", description = "")
public class AddOrEditAssetDto implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id")
    private String id;

    @ApiModelProperty(value = "资产编号")
    private String assetNumber;

    @ApiModelProperty(value = "资产名称")
    private String assetName;

    @ApiModelProperty(value = "设备分类（A、B、C）类")
    private String deviceClassify;

    @ApiModelProperty(value = "设备类别")
    private String assetClassify;

    @ApiModelProperty(value = "设备标签")
    private String deviceLabel;

    @ApiModelProperty(value = "数量(台/套)")
    private Integer amount;

    @ApiModelProperty(value = "单位")
    private String unit;

    @ApiModelProperty(value = "规格型号")
    private String specification;

    @ApiModelProperty(value = "工序")
    private String location;

    @ApiModelProperty(value = "管理单位")
    private String department;

    @ApiModelProperty(value = "制造商")
    private String maker;

    @ApiModelProperty(value = "出厂编号")
    private String factoryNumber;

    @ApiModelProperty(value = "生产日期")
    private String productionDate;

    @ApiModelProperty(value = "主机功率（kw）")
    private String hostPower;

    @ApiModelProperty(value = "能源介质")
    private String energy;

    @ApiModelProperty(value = "是否需要采集能源数据(0-否1是)")
    private String isCollect;

    @ApiModelProperty(value = "资产原值")
    private BigDecimal cost;

    @ApiModelProperty(value = "资产净值")
    private BigDecimal equity;

    @ApiModelProperty(value = "安装位置")
    private String installPosition;

    @ExcelProperty(value = "用途", index = 13)
    @ApiModelProperty(value = "用途")
    private String purpose;

    @ApiModelProperty(value = "台长")
    private String foremen;

    @ApiModelProperty(value = "现状评估")
    private String evaluation;

    @ApiModelProperty(value = "存在问题")
    private String thereProblems;

    @ApiModelProperty(value = "解决措施")
    private String measures;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "台效-理论台效")
    private String txTheoryEffect;

    @ApiModelProperty(value = "台效-实际台效")
    private String txActualEffect;

    @ApiModelProperty(value = "设备运行-当前运行情况")
    private String runCurrentStatus;

    @ApiModelProperty(value = "设备运行-历史故障频率")
    private String runFaultFrequency;

    @ApiModelProperty(value = "设备运行-关键参数稳定性")
    private String runKeyParamStability;

    @ApiModelProperty(value = "设备运行-负载能力")
    private String runLoadCapacity;

    @ApiModelProperty(value = "设备维护-维护计划执行率")
    private String whPlanExecutionRate;

    @ApiModelProperty(value = "设备维护-维护记录完整性")
    private String whRecordIntegrity;

    @ApiModelProperty(value = "设备维护-维护人员资质")
    private String whPersonnelQualifications;

    @ApiModelProperty(value = "设备维护-预防性维护覆盖")
    private String whPreventiveCoverage;

    @ApiModelProperty(value = "备品备件-备件库存")
    private String bpSparePartInventory;

    @ApiModelProperty(value = "备品备件-备件质量")
    private String bpSparePartQuality;

    @ApiModelProperty(value = "备品备件-供应链可靠性")
    private String bpSupplyChainReliability;

    @ApiModelProperty(value = "备品备件-备件更换效率")
    private String bpChangeEfficiency;

    @ApiModelProperty(value = "设备老化-物理老化程度")
    private String lhAgingDegree;

    @ApiModelProperty(value = "设备老化-技术淘汰风险")
    private String lhEliminateRisk;

    @ApiModelProperty(value = "设备老化-剩余寿命预测")
    private String lhLifePrediction;

    @ApiModelProperty(value = "环境与安全-环境适应性")
    private String hjFlexibility;

    @ApiModelProperty(value = "环境与安全-安全防护等级")
    private String hjPreventionLevel;

    @ApiModelProperty(value = "环境与安全-安全事件历史")
    private String hjEventHistory;

    @ApiModelProperty(value = "经济性-运维成本占比")
    private String jjxUpkeepCostRatio;

    @ApiModelProperty(value = "经济性-停机损失")
    private String jjxShutdownLosses;

    @ApiModelProperty(value = "经济性-技改/更新性价比")
    private String jjxJgXjb;

    @ApiModelProperty(value = "图层id")
    private String layerId;

}